package com.ittao.taoaicodeapp.core.saver;

import cn.hutool.core.util.StrUtil;
import com.ittao.taoaicodeai.ai.model.HtmlCodeResult;
import com.ittao.taoaicodecommon.exception.BusinessException;
import com.ittao.taoaicodecommon.exception.ErrorCode;
import com.ittao.taoaicodemodel.model.enums.CodeGenTypeEnum;
import org.springframework.stereotype.Component;

@Component
public class HtmlCodeFileSaverTemplate extends CodeFileSaverTemplate<HtmlCodeResult> {

    /**
     * 获取代码生成类型
     * @return
     */
    @Override
    protected CodeGenTypeEnum getCodeType() {
        return CodeGenTypeEnum.HTML;
    }

    /**
     * 保存文件的具体实现
     * @param result 代码生成结果
     * @param baseDirPath 保存的根目录
     */
    @Override
    protected void saveFile(HtmlCodeResult result, String baseDirPath) {
        writeToFile(baseDirPath, "index.html", result.getHtmlCode());
    }

    /**
     * 验证输入
     * @param result 代码生成结果
     */
    @Override
    protected void validateInput(HtmlCodeResult result) {
        super.validateInput(result);
        // HTML 代码不能为空
        if (StrUtil.isBlank(result.getHtmlCode())) {
            throw new BusinessException(ErrorCode.PARAMS_ERROR, "HTML 代码不能为空");
        }
    }
}
